// 导入mongoose数据库
const mongoose = require("mongoose");
const { interfaceSchema } = require("./peopleCommon");
// 用户使用的Schema模型
const UserSchema = new mongoose.Schema(
  {
    // 用户昵称
    nickname: {
      type: String,
      match: /^[\u4E00-\u9FA5 a-z A-Z 0-9 _ -]{1,20}$/,
      required: true,
      unique: true,
    },
    // 用户的账号
    account: {
      type: String,
      required: true,
      unique: true,
    },
    // 用户的密码hash
    password_digest: {
      type: String,
      required: true,
    },
    // 密码hash使用的salt
    salt: {
      type: String,
      required: true,
    },
    // 用户的手机号
    telephone: {
      type: String,
      match: /^1[3-9][0-9]{9}$/,
    },
    // 用户的邮箱
    email: {
      type: String,
      match: /^[\w\-.]+@([\w-]+.)+[\w-]{2,}$/,
    },
    /**
     * 名称：界面设置
     * 包含：夜间模式
     */
    interface: {
      type: interfaceSchema,
      default: { darkMode: false },
    },
  },
  {
    virtuals: {
      /**
       * 名称：id
       */
      id: {
        get() {
          return this._id;
        },
      },
    },
  }
);

// 使用UserSchema创建对应的Users model
const Users = mongoose.model("Users", UserSchema);

// 将User model 导出
module.exports = Users;
